importPackage(Packages.de.elo.ix.client);
//@include lib_Class.js
//@include lib_handlebars.js
//@include lib_sol.common.Config.js
//@include lib_sol.common.Template.js
//@include lib_sol.common.DateUtils.js
//@include lib_sol.common.ExecUtils.js
//@include lib_sol.common.SordUtils.js
//@include lib_sol.common.RepoUtils.js
//@include lib_sol.common.ExceptionUtils.js
//@include lib_sol.common.ix.FunctionBase.js
//@include lib_sol.dev.install.Installer.js
var logger = sol.create("sol.Logger", { scope: "sol.dev.ix.functions.Deploy" });
/**
* Deploys or an unploys an install package
*
* # As workflow node
*
* ObjId is set based on the element that the workflow is attached to.
* Following configuration should be applied to the comments field.
*
*
* # As IX function call
*
* In addition to the workflow node configuration the objId must be passed.
*
* sol.common.IxUtils.execute("RF_sol_dev_function_Deploy", {
* objId: "4711"
* });
*
* @author MW, ELO Digital Office GmbH
* @version 1.0
*
* @eloix
*
* @requires moment
* @requires handlebars
* @requires sol.common.Config
* @requires sol.common.Template
* @requires sol.common.ObjectUtils
* @requires sol.common.StringUtils
* @requires sol.common.DateUtils
* @requires sol.common.AsyncUtils
* @requires sol.common.FileUtils
* @requires sol.common.SordUtils
* @requires sol.common.RepoUtils
* @requires sol.common.AclUtils
* @requires sol.common.WfUtils
* @requires sol.common.AsUtils
* @requires sol.common.HttpUtils
* @requires sol.common.UserUtils
* @requires sol.common.SordTypeUtils
* @requires sol.common.UserProfile
* @requires sol.common.FunctionBase
* @requires sol.dev.install.Installer
*/
sol.define("sol.dev.ix.functions.Deploy", {
extend: "sol.common.ix.FunctionBase",
requiredConfig: ["objId"],
/**
* @cfg {String} objId (required)
*/
initialize: function (config) {
var me = this;
me.$super("sol.common.ix.FunctionBase", "initialize", [config]);
},
/**
* Deploys or undeploys a package
*/
process: function () {
var me = this,
installConfig;
me.mode = me.mode || "undeploy";
installConfig = me.getInstallConfig();
if (!installConfig) {
me.logger.debug("Install config is empty");
return;
}
installConfig[me.mode] = true;
installConfig.packageFolderId = me.objId;
installConfig.interactive = false;
installConfig.undeployRemove = false;
sol.dev.install.Installer.execute(me.mode, installConfig);
},
getInstallConfig: function () {
var me = this,
installConfigRepoPath, installConfigObjId, configLoader;
installConfigRepoPath = "ARCPATH[" + me.objId + "]:/.eloinst/install";
installConfigObjId = sol.common.RepoUtils.getObjId(installConfigRepoPath);
if (!installConfigObjId) {
return;
}
configLoader = sol.create("sol.common.Config", { load: installConfigObjId });
return configLoader.config;
}
});
/**
* @member sol.dev.ix.functions.Deploy
* @static
* @inheritdoc sol.common.ix.FunctionBase#onEnterNode
*/
function onEnterNode(clInfo, userId, wFDiagram, nodeId) {
var params, deploy;
logger.enter("onEnterNode_Deploy", { flowId: wFDiagram.id, nodeId: nodeId });
params = sol.common.WfUtils.parseAndCheckParams(wFDiagram, nodeId);
params.objId = wFDiagram.objId;
deploy = sol.create("sol.dev.ix.functions.Deploy", params);
deploy.process();
logger.exit("onEnterNode_Deploy");
}
/**
* @member sol.dev.ix.functions.Deploy
* @static
* @inheritdoc sol.common.ix.FunctionBase#onExitNode
*/
function onExitNode(clInfo, userId, wFDiagram, nodeId) {
var params, deploy;
logger.enter("onExitNode_Deploy", { flowId: wFDiagram.id, nodeId: nodeId });
params = sol.common.WfUtils.parseAndCheckParams(wFDiagram, nodeId);
params.objId = wFDiagram.objId;
deploy = sol.create("sol.dev.ix.functions.Deploy", params);
deploy.process();
logger.exit("onExitNode_Deploy");
}
/**
* @member sol.dev.ix.functions.Deploy
* @method RF_sol_dev_function_Deploy
* @static
* @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName
*/
function RF_sol_dev_function_Deploy(iXSEContext, args) {
var params, deploy;
logger.enter("RF_sol_dev_function_Deploy", args);
params = sol.common.ix.RfUtils.parseAndCheckParams(iXSEContext, arguments.callee.name, args, "objId"),
deploy = sol.create("sol.dev.ix.functions.Deploy", params);
deploy.process();
logger.exit("RF_sol_dev_function_Deploy");
}